/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package LibreriaServer;

import MailCliente.MailCliente;
import Message.Mensaje;
import java.util.ArrayList;
import javax.swing.JTable;
import mailserver.MailServer1;

/**
 * Una clase para representar el tiempo.
 * para poder controlar el tiempo 
 * @version 1.2, 17/12/03
 * @author Delcy, Fabiloa, Adriana, Marisol
 */
public class tread implements Runnable {

    private MailServer1 servidor;
    private int delay;
    private String name;
    private MailCliente cliente;
    
            
/**
* Constructor de la clase
*
* @param servidor el MailServer1
* @param delayTime el tiempo de tipo entero
* @param name 
* @param cliente el MailCliente  
* 
*/
    public tread(MailServer1 servidor, int delayTime, String name, MailCliente cliente) {
        this.servidor = servidor;
        delay = delayTime;
        this.name = name;
        this.cliente = cliente;
  
    }
    /**
     * el metodo run en la clase
     * derivada Hilo, Se ejecuta un bucle for, 
     * y dentro del bucle se imprime, el nombre del subproceso,
     * que se obtiene mediante la función miembro getNextMessage de la
     * clase Thread y el valor que va tomando la variable contador i del bucle.
     */

    
    public void run() {
        try {
            for (;;) {
                Thread.sleep(delay);
                int i = 10;
                while ((servidor.getMessagesWaitting(name) != 0) && (i > 0)) {

                    Mensaje msj = (Mensaje) servidor.getNextMessage(name);
                    
                    cliente.sendMessage(msj);
                    i--;
                }

            }
        } catch (InterruptedException e) {
            return;
        }
    }
}
